package br.com.proway.biblioteca;



import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import br.com.proway.conexao.conexao;

public class Editora extends EditoraAbstract {

	private conexao conexao; 
	public Editora(){
		conexao =new conexao();
	}
	private int codigo; 
	public conexao getConexao() {
		return conexao;
	}

	public void setConexao(conexao conexao) {
		this.conexao = conexao;
	}

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	private String nome;
	private String siteEditora;
	private Estado estado; 
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSiteEditora() {
		return siteEditora;
	}

	public void setSiteEditora(String siteEditora) {
		this.siteEditora = siteEditora;
	}

	public Estado getEstado() {
		return estado;
	}

	public void setEstado(Estado estado) {
		this.estado = estado;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	private String cidade; 
	@Override
	public void AlterarEditora(int codigo, String nome, String siteEditora, Estado estado,
			String cidade) throws Exception{
		// TODO Auto-generated method stub
		String sql = "update editora set nome = ?, siteeditora = ?, codestado = ?, cidade = ?  where codigo = ?";
		PreparedStatement sqlPrep = conexao.getConnection().prepareStatement(sql);
		int contador = 1; 
		sqlPrep.setString(contador++, nome);
		sqlPrep.setString(contador++, siteEditora);
		sqlPrep.setInt(contador++, estado.getCodigo());
		sqlPrep.setString(contador++, cidade);
		sqlPrep.setInt(contador++, codigo);
		sqlPrep.execute();
	}

	
	public ResultSet ConsultarEditora(String nome, String siteEditora) throws Exception {
		
		String sql = "select * from editora ";
		
		String sql1 = null;
		if (nome!= null){
			sql1 =" nome  = ?";
		}
		if (siteEditora!= null){
			if (sql1 != null){
				sql1 +=" and siteeditora = ?";
			}else{
				sql1 +=" siteeditora = ?";
			}
		}
		if (sql1 != null){
			sql = sql + " where " + sql1;
		}
		

		PreparedStatement sqlPrep = conexao.getConnection().prepareStatement(sql);
		int contador = 1;
		if (nome != null){
			sqlPrep.setString(contador++, nome);
		}
		if (siteEditora != null){
			sqlPrep.setString(contador++, siteEditora);
		}
		
		
		return sqlPrep.executeQuery();
	}

	@Override
	public void ExcluirEditora(int codigo) throws Exception {
		// TODO Auto-generated method stub
		String sql = "delete from editora where codigo = ? ";
		PreparedStatement sqlPrep = conexao.getConnection().prepareStatement(sql);
		sqlPrep.setInt(1, codigo);
		sqlPrep.execute();
	}

	@Override
	public void cadastrarEditora(String nome, String siteEditora, Estado estado, String cidade) throws Exception {
		// TODO Auto-generated method stub
		System.out.println(estado.getCodigo());
		String sql = "insert into editora (nome, siteeditora, codestado, cidade) values (?,?,?,?)";
		PreparedStatement sqlPrep = conexao.getConnection().prepareStatement(sql);
		int contador = 1; 
		sqlPrep.setString(contador++, nome);
		sqlPrep.setString(contador++, siteEditora);
		sqlPrep.setInt(contador++, estado.getCodigo());
		sqlPrep.setString(contador++, cidade);
		sqlPrep.execute();

	}

	public static void main(String[] args) throws Exception {
		Estado e = new Estado(); 
		e.setCodigo(1);
		e.setNome("Santa Catarina");
		
		Editora editora = new Editora();
		editora.cadastrarEditora("Pearson", "pearson.com.br", e, "Sao Paulo");
	}
}
